/*
 * 工程名称
 */
var fisherContextPath="/";
/*
 * 全选、全不选
 */
function fisherSelectAll(name,grid){
	if($(".fisherSelectAll").length>0){//全选
		$('.flexigrid .bDiv tbody tr').addClass('trSelected');
		$(".flexigrid .bDiv tbody tr input[name^='Position#']").attr("checked",true);//选择列打钩
		var selectAllObj=$(".fisherSelectAll");
		$(selectAllObj).removeClass("fisherSelectAll");
		$(selectAllObj).addClass('fisherUnselectAll');
	}else if($(".fisherUnselectAll").length>0){//全不选
		$('.flexigrid .bDiv tbody tr').removeClass('trSelected');
		$(".flexigrid .bDiv tbody tr input[name^='Position#']").attr("checked",false);//选择列去钩
		var unselectAllObj=$(".fisherUnselectAll");
		$(unselectAllObj).removeClass("fisherUnselectAll");
		$(unselectAllObj).addClass('fisherSelectAll');
	}
}
/*
*显示和隐藏查询表格
*/
function fisherShowQuery(name,grid){
	$(".fisherFilterDiv").toggle("normal");
}
/*
*移除查询表格
*/
function fisherRemoveQuery(fieldsetObj){
	if($(".fisherFilterFieldset").length!=1){
		$(fieldsetObj).parent().parent().remove(); 
	}else{
		top.MyWindow.tips({
			content : '对不起，不允许删除最后一个查询条件！',
			title : '错误框',
			type : 'error',
			container : top					
		});		
	}
}
/*
*复制查询表格
*/
function fisherCopyQuery(){
	$(".fisherFilterFieldset:last").clone().insertBefore($(".fisherFilterButtonTable"));//复制最后一个
	$(".fisherFilterFieldset:last input[name^='fisher#value#']").attr("value","");//清空查询条件
	$(".fisherFilterFieldset:last input[name^='fisher#text#']").attr("value","");//清空查询条件
	$(".fisherFilterFieldset:last input[name^='fisher#radio#']").attr("checked",false);//清空查询条件
	$(".fisherFilterFieldset:last input[name^='fisher#checkbox#']").attr("checked",false);//清空查询条件
}
/*
*导出数据
*/
function fisherExport(name,grid){
	var titleName=$('.flexigrid').attr("titleName");//Title的名称
	var exportUrl=$('.flexigrid').attr("exportUrl");//Url的名称
	var exportType=$('.flexigrid').attr(name+"_exportType");//导出类型
	var includeColumns=$('.flexigrid').attr(name+"_includeColumns");//导出包含字段
	var excludeColumns=$('.flexigrid').attr(name+"_excludeColumns");//导出排除字段
    var method="POST";
    //调用导出页面
    var url=exportUrl;
	var parameters = [
		 { name : 'exportType', value : exportType}
		,{ name : 'fisherTitle', value : titleName }
		,{ name : 'exportIncludeColumns', value : includeColumns}
		,{ name : 'exportExcludeColumns', value : excludeColumns}
	];    
    var dataType="json";
    //打开下载页面
    var success=function(data){
    				var downloadfile=data;
    				try{
   						downloadfile=$(data).attr("export");
   						//downloadfile=jsonData.export;
    				}catch(e){alert(e);}
    				//alert(downloadfile);
    				//window.open(fisherContextPath+"/fisher/jsp/download.jsp?filetype="+exportType+"&downloadfile="+downloadfile,"fisherExportExcel");
    				var url=fisherContextPath+"/fisher/jsp/download.jsp?filetype="+exportType+"&downloadfile="+downloadfile;
    				//fisherOpenFile(url);
					fisherDownloadFile(url);
    				fisherUnloading();//关闭加载提示
    			 };
    var error=function(data){
					top.MyWindow.tips({
						content : '导出["+exportType+"]失败，请与系统管理员联系！',
						title : '错误框',
						type : 'error',
						container : top					
					});	    				
    				fisherUnloading();//关闭加载提示
    			 };
    fisherLoading();//开启加载提示
	$('.bDiv table').flexExport(method,url,parameters,dataType,success,error);
}
/*
*弹出窗口:检测是否启用弹出窗口阻止程序
*/
function fisherOpenFile(url){
	var newwindow=window.open(url,name);
	if(newwindow==null){
   		var tip="对不起，你的浏览器【弹出窗口阻止程序】设置为【启用弹出窗口阻止程序】，请设置为【禁用弹出窗口阻止程序】后再尝试!"
   		tip+="\n";
   		tip+="【弹出窗口阻止程序】设置路径：打开浏览器-->工具-->弹出窗口阻止程序-->禁用弹出窗口阻止程序";
		top.MyWindow.tips({
			content : tip,
			title : '错误框',
			type : 'error',
			container : top					
		});	    	
		return false;
	}else{
		newwindow.focus();//获得焦点	
	}
	return true;
}
/*
*下载文件
*/
function fisherDownloadFile(url){
	if(typeof(fisher_download_file_iframe)== "undefined")
	{
	   fisher_download_file_iframe = document.createElement("iframe");
	   document.body.appendChild(fisher_download_file_iframe); 
	}
	//alert(fisher_download_file_iframe);
	fisher_download_file_iframe.src = url;
	fisher_download_file_iframe.style.display = "none";
}
/*
* 默认Renderer(带提示信息)
*/
function fisherDefaultRenderer(tdDiv,pid){
    var source=$(tdDiv).html();//原内容
	var target=fisherEscapeCharacter(source);//转义字符
	$(tdDiv).html("<span title='"+target+"'>"+target+"</span>");				
}
/*
* 选择Renderer(带checkbox选择)
*/
function fisherCheckboxRenderer(tdDiv,pid){
    var checkbox=$(tdDiv).html();//原内容
	$(tdDiv).html("<input type='checkbox'  name='Position#"+checkbox+"' id='Position#"+checkbox+"' value='"+pid+"' onclick='fisherSelectRow(this);return false;'/>");			
}
/*
* 选中行
*/
function fisherSelectRow(tdInput){
	if(tdInput.checked){
		$(tdInput).parent().parent().parent().addClass("trSelected");	
	}else{
		$(tdInput).parent().parent().parent().removeClass("trSelected");
	}
}
/*
* 转义字符
*/
function fisherEscapeCharacter(content){
    //原特殊字符
    var source=new Array("<",">");
    //转义后的特殊字符
    var target=new Array("&lt;","&gt;");
    for(var i=0;i<source.length;i++){//转义所有特殊字符
    	content=fisherReplaceAll(content,source[i],target[i]);
    }	
    return content;
}
/*
* 默认onSubmit(全选按钮设置为不选中)
*/
function fisherDefaultOnSubmit(){
    if($(".fisherUnselectAll").length>0){//全选按钮选中，则设置为不选中
    	fisherSelectAll(null,null);
    }	
    return true;		
}
/*
* 默认OnError(打出出错提示信息)
*/
function fisherDefaultOnError(data){
	top.MyWindow.tips({
		content : '执行程序错误，请与系统管理员联系！错误信息如下：<br>'+data.responseText,
		title : '错误框',
		type : 'error',
		container : top					
	});				
}
/*
* 关闭按钮方法
*/
function fisherCloseWindow(name,grid){
    if(window.confirm("确实要"+name+"吗？")){
       window.close();
    }
}
/*
 * 获取选中的值
 */
function fisherGetSelectedValues(){
	var itemArray =new Array();
	if($(".flexigrid .bDiv tbody tr[class*='trSelected']").length>0){
            var items = $(".flexigrid .bDiv tbody tr[class*='trSelected']");
        	for(i=0;i<items.length;i++){
        	   if(items[i].id.substr(3)!="-1"){//合计行的id为-1，不选中操作
				 itemArray[itemArray.length++]= items[i].id.substr(3);
			   }	
			}	
	}
	//alert(itemlist);
	return itemArray;
}
/*
 * 查询
 */
function fisherSearch(){
	if(fisherValidatorCondition()==0){
			var parameters="[";
			$("*[name^='fisher#type#']").each(function(){parameters+="{name:'"+this.name+"',value:'"+fisherReplaceAll(this.value,"'","\\'")+"'},"});//替换单引号为转义的单引号，放置js报错
			$("*[name^='fisher#value#']").each(function(){parameters+="{name:'"+this.name+"',value:'"+fisherReplaceAll(this.value,"'","\\'")+"'},"});//替换单引号为转义的单引号，放置js报错
			parameters+="]";
			//alert(parameters);
			$('.bDiv table').flexOptions({newp:1,params:eval(parameters)});
			fisherReload();
	}		
}
/*
 * 替换指定规则的内容为指定的替换内容
 */
function fisherReplaceAll(content,regex,replacement){
	var index=0;
	while((index=content.indexOf(regex,index))!=-1){
	    //alert(content+"="+index);
		content=content.substring(0,index)+replacement+content.substring(index+regex.length,content.length);
		index+=replacement.length;
		//alert(content+"="+index);
	}	
	return content;
}
/*
 * 清除查询条件
 */
function fisherClearCondition(){
	$("*[name^='fisher#value#']").attr("value","");
	$("*[name^='fisher#text#']").attr("value","");
	$("*[name^='fisher#radio#']").attr("checked",false);
	$("*[name^='fisher#checkbox#']").attr("checked",false);
}
/*
 * 重载数据
 */
function fisherReload(){
	//$(".flexigrid").flexReload();
	$('.bDiv table').flexReload();
	//$('.bDiv table').populate();
}
/*
 * 重载配置
 */
function fisherOptions(options){
	//$(".flexigrid").flexReload();
	$('.bDiv table').flexOptions(options);
	//$('.bDiv table').populate();
}
/*
 *显示枚举内容
 */
function fisherShowEnumValues(obj,valueInputName,textInputName,enumDivName){
	//alert($(obj.parentNode).html());
	//alert($(obj.parentNode).children("input[name='"+textInputName+"']").html());
	var parentObj=$(obj.parentNode);
	var valueInputObj=parentObj.children("input[name='"+valueInputName+"']");
	var textInputObj=parentObj.children("input[name='"+textInputName+"']");
	var inputIndex=0;
	$("input[name='"+textInputName+"']").each(function(index,data){
	   //alert( "Item #" + index + ": " + $("input[name='"+textInputName+"']")[index].name);
	   if(obj==$("input[name='"+textInputName+"']")[index]){
	   		inputIndex=index;
	   		//alert(inputIndex);
	   		return false;
	   }
	});		
	var enumDivObj=parentObj.children("div[name='"+enumDivName+"']");
	var enumDivWrapObj=$("div[name='"+enumDivName+"#wrap'][index='"+inputIndex+"']");
	valueInputObj.attr("index",inputIndex);//设置索引
	textInputObj.attr("index",inputIndex);//设置索引	
	//alert(enumDivWrapObj.html());
	if(enumDivWrapObj==null||enumDivWrapObj.html()==null){//包装过的div不存在，则创建它
	    var div = window.document.createElement("div"); 
	    enumDivWrapObj=$(div);
		enumDivWrapObj.attr("index",inputIndex);//设置索引
		enumDivWrapObj.attr("name",enumDivName+"#wrap");
		enumDivWrapObj.attr("class","fisherFilterValueTdDiv");
		enumDivWrapObj.html(enumDivObj.html());
		//alert(enumDivObj.height());
		if(enumDivObj.height()>400){//当高度超过400时限定为400
			enumDivWrapObj.css('height','400');
		}
		//alert(enumDivWrapObj.height());
		enumDivWrapObj.hover(function(){$(this).show();},function(){$(this).hide("normal");});//移上显示div，移出隐藏div
		$(textInputObj).hover(function(){},function(){//移出输入框
													  if(window.event){//ie下面
														var clientX=window.event.clientX;
														var clientY=window.event.clientY;
														var offsetX=window.event.offsetX;
														var offsetY=window.event.offsetY;
														var width=$(this).width();
														var height=$(this).height();
														var left=$(this).offset().left;
														var top=$(this).offset().top;
														//alert("client:("+clientX+":"+clientY+"),this wh("+width+":"+height+"),text offset:("+left+":"+top+"),event offsetX("+offsetX+":"+offsetY+"),sum("+(left+width)+":"+clientX+")");														
														if(offsetX<0||offsetY<0||left+width<=clientX){//左移、上移、右移则自动隐藏
														    enumDivWrapObj.hide("normal"); 
														}
													   }
													  }
							  );//输入框移出到非div区域时隐藏div	
		//enumDivObj.remove();//删除原有的div
	    window.document.body.appendChild(div);  
	}
	//设置位置为与输入框下面等宽
	enumDivWrapObj.css('top',textInputObj.offset().top+textInputObj.height());
	enumDivWrapObj.css('left',textInputObj.offset().left);
	enumDivWrapObj.css('width',textInputObj.width());
	enumDivWrapObj.css('z-index', 999);
	enumDivWrapObj.toggle("normal");
}
/*
 * 设置枚举查询条件值和文本
 */
function fisherSetEnumValues(obj,sourceName,targetValueName,targetTextName){
	//alert($(obj.parentNode.parentNode.parentNode.parentNode.parentNode).html());
	//alert("sourceName:"+sourceName+"  targetValueName:"+targetValueName+"  targetTextName:"+targetTextName);
	var parentObj=$(obj.parentNode.parentNode.parentNode.parentNode.parentNode);
	var inputIndex=parentObj.attr("index");
	//alert(inputIndex);
	var values="";
	var texts="";
	parentObj.find("input:checked[name='"+sourceName+"']").each(function(index, domEle){
																			var srcElement=domEle;
																			var value=srcElement.value;
																			var text=$(srcElement).next().text();
																			//alert(value);
																			//alert(text);
																			values+=value+",";
																			texts+=text+",";
																		  }
												   );
	//alert(values);
	//alert(texts);
	$("*[name='"+targetValueName+"'][index='"+inputIndex+"']").attr("value",values.substring(0,values.lastIndexOf(",")));
	$("*[name='"+targetTextName+"'][index='"+inputIndex+"']").attr("value",texts.substring(0,texts.lastIndexOf(",")));
}

/*
 * 校验查询条件
 */
function fisherValidatorCondition(){
	var messages="";
	var error=0;
	$("*[name^='fisher#value#']").each(function(index, domEle){
																var srcElement=domEle;
																var elementInfos=domEle.id.split("#");
																var value=srcElement.value;//值
																var type=elementInfos[0];//字段类型
																var disriptor=elementInfos[1];//字段描述
																var pattern=elementInfos[2];//验证正则表达式
																var information=elementInfos[3];//验证提示信息
																var message;
																fisherClearError(srcElement);//清除原有的错误信息
																if(null != value&&""!= value.trim()&&null != pattern&&""!= pattern.trim()){
																	//alert(srcElement+"#"+type+"#"+value.trim()+"#"+disriptor+"#"+pattern.trim()+"#"+information);
																	if(!new RegExp(pattern.trim()).test(value.trim())){//使用正则表达式验证
																	    message="【"+disriptor+"】"+information+"!\n";
																		messages+=(++error)+"."+message;
																		fisherAddError(srcElement,message);
					 												}																												
																}
										    }
	);
	if(error>0){
		top.MyWindow.tips({
			content : messages,
			title : '错误框',
			type : 'error',
			container : top					
		});			
	}	
    return 	error;		
}	

/*
*添加错误信息
*/
function fisherAddError(errorElement,message){
	errorElement.style.backgroundColor  = "pink";
	errorElement.title=message;
}

/*
*清除错误信息
*/
function fisherClearError(errorElement) {
		with (errorElement) {
			if (style.backgroundColor == "pink"){
				style.backgroundColor = "";
			    errorElement.title="";
			}	
		}
	}
	
/**
 * 开启加载提示
 */
function fisherLoading(){
  	/*
  	if(window.document.getElementById("fisherLoadingDiv")==null){//已经有加载的div则不再创建了
	    var div = window.document.createElement("div"); 
	    var img = window.document.createElement("img"); 
	    var span = window.document.createElement("span"); 
	    img.src=fisherContextPath+"/fisher/css/images/loading.gif";
	    img.className="fisherLoadingImg";
	    span.innerText="系统正在处理中，请稍候...";
	    span.className="fisherLoadingSpan";
	    div.id="fisherLoadingDiv";  
	    div.className="fisherLoadingDiv";  
	    div.appendChild(img);  
	    div.appendChild(span);  
	    window.document.body.appendChild(div);   
  	}
  	*/

  	$.blockUI({ message: '<br><br><img src="'+fisherContextPath+'/image/loading.gif" ><br>我正在努力导出中，请耐心等待...<br><br>',
  				css: {color:'#fff',
  				backgroundColor:'#000',
  				baseZ:1988 }}); 
 }	
 /*
* 自动调整内容高度
*/
function fisherResizeHeight(){
	$(".bDiv").find("table").resize(function(){//table自动调整内容高度
		try{
			var height=$(this).find("tbody").height();
			if(height==null){//没有任何数据
				height=0;
			}
			if($(this).width()>$(".bDiv").width()){
				$(".bDiv").height(height+20);	
			}else{
				$(".bDiv").height(height);	
			}
			if($(".nDiv").find("tbody tr").length*25<height){
				$(".nDiv").height('auto');//调整显示、影藏列的高度
			}else{
				$(".nDiv").height(height);
			}
		}catch(e){}
	});
	$(".bDiv").resize(function(){//div自动调整内容高度
		try{
			var height=$(this).find("tbody").height();
			if(height==null){//没有任何数据
				height=0;
			}		
			if($(this).width()<$(".bDiv").find("table").width()){
				$(".bDiv").height(height+20);
			}else{
				$(".bDiv").height(height);
			}
			if($(".nDiv").find("tbody tr").length*25<height){
				$(".nDiv").height('auto');//调整显示、影藏列的高度
			}else{
				$(".nDiv").height(height);
			}
		}catch(e){}
	});
}
/**
 * 关闭加载提示
 */   
function fisherUnloading(){
   /*var div = window.document.getElementById("fisherLoadingDiv");
   if(div!=null){
   	window.document.body.removeChild(div);
   }*/
   $.unblockUI();
}	
//扩展String类功能//删除字符串二边空格    
String.prototype.trim = function()    {     
	return this.replace(/(^[\s]*)|([\s]*$)/g, "");    
};    
//删除字符串左边空格    
String.prototype.lTrim = function()    {     
	return this.replace(/(^[\s]*)/g, "");    
};    
//删除字符串右边空格    
String.prototype.rTrim = function()    {     
	return this.replace(/([\s]*$)/g, "");    
}; 